package org.hot100_1;

import java.util.Stack;

public class leetcode66 {
    public int[] dailyTemperatures(int[] temperatures) {
        Stack<Integer> stack = new Stack<>();
        int n = temperatures.length;
        int [] res = new int[n];

        //使用单调栈，从栈顶到栈底是递增
        //如果当前的放入的元素大于栈顶元素，需要对栈中的元素进行弹栈，直到找到比当前元素大的，弹出的元素说明找到了比自身大的温度

        for (int i = 0; i < n; i++) {
            while (!stack.isEmpty() && temperatures[i]>temperatures[stack.peek()]){
                Integer index = stack.pop();
                res[index]=i-index;
            }
            stack.push(i);
        }

        return res;
    }
}
